// 导入express模块
const express = require('express')

// 创建express的服务器实例
const app = express()

const bodyParser = require('body-parser');

// 请配置session中间件
const session = require('express-session')
app.use(session({
    secret: 'wd',
    resave: false,
    saveUninitialized: true
}))

// 托管静态页面
app.use(express.static('./pages'))
    // 配置解析表单数据的中间件
app.use(bodyParser.urlencoded({ extended: false }))

// 设置允许跨域返回问该服务
app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Origin", 'PUT,GET,POST,DELETE,OPTIONS');
    res.header("Access-Control-Allow-Origin", 'X-Requested-With');
    res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
    res.header("X-Powered-By", ' 3.2.1');
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});


// 登录API接口
app.post('/api/login', (req, res) => {
    // 判断用户的登录信息是否正确
    if (req.body.username !== 'admin' || req.body.password !== '000000') {
        return res.send({ status: 1, msg: '登录失败' })
    }
    // 请将登录成功后的用户信息，保存到session中
    // 注意：只有成功配置了express-session 这个中间件之后，才能沟通过req点出来session这个属性
    req.session.user = req.body; // 用户信息
    req.session.islogin = true; // 登录状态

    res.send({ status: 0, msg: '登录成功' })
})

// 获取用户姓名接口
app.get('/api/username', (req, res) => {
    // 从session中获取用户的名称，响应给客户端
    if (!req.session.islogin) {
        return res.send({ status: 1, msg: 'fail' })
    }
    res.send({
        status: 0,
        msg: 'success',
        username: req.session.user.username
    })

})

// 退出登录接口
app.post('/api/login', (req, res) => {
    req.session.destroy() //只会清空当前的session
    res.send({
        status: 0,
        msg: '退出登录成功'
    })
});
// 一定要在路由之前，配置cors中间件，从而解决接口跨域问题
const cors = require('cors')

// app.use全局注册
app.use(cors())

// 调用 app.listen方法，指定端口号并启动web服务器
app.listen(80, function() {
    console.log('express srever runing at http://127.0.0.1');
})